<?
/* Se asegura que el archivo es incluido por el index */
	defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );  
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Email_exe( $this );
		
	class Email_exe extends Exe
	{
	function Email_exe( &$oModule )
		{
			$this->Exe( $oModule );
		}
	// MODIFICAR_EMAIL
	function update()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Email_frm' );
			extract( $oForm->getFieldArray() );
			//Valida el Email
			if ( $cEmail )
			{
				if ( !ereg ("([0-9a-z!])@([0-9a-z])", $cEmail, $aReg) )
				{
					addMessage("El email no es valido." );
					return false;
				}
			}
			
			if ( $ncOrganizacion && empty($ncOrden)) 
				{
					// Verifica si ya existe un mail laboral
					$ncOrden = $this->oDatabase->getData( "SELECT ncOrden FROM atPersonaEmail WHERE ncOrganizacion=$ncOrganizacion AND ncPersona=$ncPersona" );
				}
			if ( $ncOrden )
			{
				// Si existe => lo actualiza
				if ( $cEmail ) 
				{
					$this->oDatabase->update("atPersonaEmail",
										"cEmail", $cEmail, 
										"WHERE",
										"ncPersona", $ncPersona, 
										"ncOrden", $ncOrden );
				} else 
				{
					// Si esta vacio => lo elimina
					$this->oDatabase->delete("atPersonaEmail", "ncPersona", $ncPersona, "ncOrden", $ncOrden );
				}
			} elseif ( $cEmail ) 
				{
					$ncOrden = $this->oDatabase->nextKey("atPersonaEmail", "ncOrden", "ncPersona=$ncPersona");
					$this->oDatabase->insert("atPersonaEmail",
										"ncOrden", $ncOrden,
										"cEmail", $cEmail,
										"ncOrganizacion", $ncOrganizacion,
										"ncPersona", $ncPersona );
				}
		}
	// AGREGAR_EMAIL
	function insert( $ncPersona = '')
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Email_frm' );
			extract( $oForm->getFieldArray() );
			$ncOrden = $this->oDatabase->nextKey("atPersonaEmail", "ncOrden", "ncPersona=$ncPersona");
			// Agrega el Registro
			$this->oDatabase->insert("atPersonaEmail", 
								"cEmail", $cEmail,
								"ncOrganizacion", $ncOrganizacion, 
								"ncPersona", $ncPersona, 
								"ncOrden", $ncOrden );
		}
	// ELIMINAR_EMAIL
	function delete()
		{
			$ncPersona = getParam ( 'ncPersona' );
			$ncOrden = getParam ( 'ncOrden' );
			if ( $ncPersona && $ncOrden )
			{
				// Elimina
				$this->oDatabase->delete("atPersonaEmail", "ncPersona", $ncPersona, "ncOrden", $ncOrden);
			}
		}
	}
?>
